/*
 * @Author: your name
 * @Date: 2020-07-22 12:10:15
 * @LastEditTime: 2020-07-22 14:53:29
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \knowledge\TS\helloword.ts
 */ 

// function run():string{
//     return "string";
// }
// console.log(run());

// function getInfo(name:string,age:number):string{
//     return `${name}-${age}`
// }

// // console.log(getInfo('lihao',18));


// function getInfo2(name:string,age?:number):string{
//     return `${name}-${age==undefined?'保密':age}`
// }

// console.log(getInfo2('lihao',18));
// console.log(getInfo2('lihao2'));

//  console.log(1111111);

// class Person{
//     // 属性
//     name:string;   

//     // 构造函数 实例化类的时候 触发的方法
//     constructor (name:string){
//         this.name = name;
//     };
//     getName():string{
//         return `I am ${this.name}`
//     }
//     setName(name:string){
//         this.name = name
//     }
// };

// var person = new Person('bobo');
// console.log(person.getName())
// person.setName("tttt")
// console.log(person.getName())

class Car{
    // 属性
    name:string;   

    // 构造函数 实例化类的时候 触发的方法
    constructor (name:string){
        this.name = name;
    };
    run():string{
        return `${this.name}running!`
    }
    
};

class BMW extends Car{
    constructor(name:string){
        super(name);  // 初始化父类的构造函数
    }
}

var b:BMW = new BMW('320');
console.log(b.run());

// public protected private
// static
